BottleH Blog

01. Gradle의 탄생과 build.gradle

    Tags

  • Build Tool
  • Gradle
01. Gradle의 탄생과 build.gradle thumbnail

01. Gradle의 탄생과 build.gradle

지금까지 Maven을 이용한 프로젝트를 진행해왔지만, Gradle을 이용하는 빈도가 늘어나는 만큼 공부하고자 정리해보았습니다.

☄Gradle 이란?

  • Groovy라는 언어를 기반으로 만들어진 빌드 도구이다.

    • Groovy는 Java 가상 머신에서 실행되는 스크립트 언어
    • Java와 마찬가지로 소스 코드를 작성하고 Java 가상 머신에서 동작하지만, Java와 달리 소스 코드를 컴파일을 할 필요는 없다.
    • 또한 Java와 호환되고, Java 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다.
    • 문법도 Java에 아주 가까워, Java를 보다 사용하기 쉽게 한 것으로 느낄 수 있다.
  • Maven은 XML 기반의 빌드 처리를 작성한다. 간단한 내용이라면 상관 없지만, 복잡한 내용을 작성하게 되면 XML 기반 의한 묘사는 상당히 가독성이 떨어진다.

🔑build.gradle

Gradle 명령으로 수행하는 처리는 build.gradle라는 파일에 작성된 내용을 바탕으로 실행

/* * This build file was generated by the Gradle 'init' task. * * This generated file contains a sample Java project to get you started. * For more details take a look at the Java Quickstart chapter in the Gradle * user guide available at https://docs.gradle.org/4.1/userguide/tutorial_java_projects.html */ // Apply the java plugin to add support for Java apply plugin: 'java' // Apply the application plugin to add support for building an application apply plugin: 'application' // In this section you declare where to find the dependencies of your project repositories { // Use jcenter for resolving your dependencies. // You can declare any Maven/Ivy/file repository here. jcenter() } dependencies { // This dependency is found on compile classpath of this component and consumers. compile 'com.google.guava:guava:22.0' // Use JUnit test framework testCompile 'junit:junit:4.12' } // Define the main class for the application mainClassName = 'App'

01. java 플러그인 추가

apply plugin: 'java'

apply plugin:라는 것은 Gradle 플러그인을 사용하기 위한 것

02. application 플러그인 추가

apply plugin: 'application'

application은 응용 프로그램에 대한 기능을 제공하는 플러그인이다. 앞에서 run 응용 프로그램을 실행했는데, 이것이 application 플러그인에 의해 제공되는 테스크이다.

03. 메인 클래스 이름

mainClassName = 'App'

메인 클래스를 지정한다. run으로 응용 프로그램을 실행할 수 있었던 것도 이 mainClassName 메인 클래스가 지정되어 있었기 때문이다.

04. repositories

저장소라는 것은 각종 프로그램들이 저장되는 위치이다.

repositories { mavenCentral() jcenter() }

Apache Maven 중앙 저장소 혹은 Maven과 Gradle 등 각종 빌드 도구에서 사용할 수 있는 공개 저장소인 Jcenter를 사용할 수도 있다.

05. dependencies

저장소에서 필요한 라이브러리를 사용하는데 필요한 것이 dependencies이다.

dependencies { compile 'com.google.guava:guava:22.0' 그룹 : com.google.guava 이름 : guava 버전 : 22.0 testCompile 'junit:junit:4.12' 그룹 : junit 이름 : junit 버전 : 4.12 }

compile ~ 이라고 기술하는 것은 그 라이브러리가 컴파일 시에 참조되는 것

testCompile ~라고 기술하는 것은 그 라이브러리가 테스트 컴파일 시에 참조되는 것

compile group:'com.google.guava', name:'guava', version:'22.0'

위와 같이 그룹, 이름, 버전을 분리하여 작성할 수도 있다.

classpath '... 라이브러리 ...'

컴파일에서 실행시까지 의존하는 라이브러리 지정에 사용

reference: https://gradle.org/ http://www.devkuma.com/books/pages/1064

Written by@BottleH
Back-End Developer

GitHub